package com.cmcc.groupcontacts.common;

import com.cmcc.groupcontacts.MainApp;

/**
 * 
 * 配置文件管理器
 * 
 * @author
 * 
 */
public abstract class PreferenceManager {
	/** 是否开启智能拦截常量 */
	public static final String CONFIG_IS_FIREWALL_OPEN = "IsFirewallOpened";
	/** 拦截模式常量 */
	public static final String CONFIG_FIREWALL_MODE = "FirewallMode";
	/** 拦截提示音常量 */
	public static final String CONFIG_FIREWALL_TONE = "FirewallTone";
	/** 自定义拦截模式-黑名单常量 */
	public static final String CONFIG_FIREWALL_MODE_BLACK = "FirewallModeBlack";
	/** 自定义拦截模式-白名单常量 */
	public static final String CONFIG_FIREWALL_MODE_WHITE= "FirewallModeWhite";
	/** 自定义拦截模式-本地联系人电话常量 */
	public static final String CONFIG_FIREWALL_MODE_LOCAL_CONTACTS_CALL = "FirewallModeLocalContactsCall";
	/** 自定义拦截模式-本地联系人信息常量 */
	public static final String CONFIG_FIREWALL_MODE_LOCAL_CONTACTS_SMS = "FirewallModeLocalContactsSms";
	/** 自定义拦截模式-集团联系人电话常量 */
	public static final String CONFIG_FIREWALL_MODE_GROUP_CONTACTS_CALL= "FirewallModeGroupContactsCall";
	/** 自定义拦截模式-集团联系人信息常量 */
	public static final String CONFIG_FIREWALL_MODE_GROUP_CONTACTS_SMS = "FirewallModeGroupContactsSms";
	/** 自定义拦截模式-陌生人电话常量 */
	public static final String CONFIG_FIREWALL_MODE_STRANGER_CALL= "FirewallModeStrangerCall";
	/** 自定义拦截模式-陌生人信息常量 */
	public static final String CONFIG_FIREWALL_MODE_STRANGER_SMS = "FirewallModeStrangerSms";
	/** 自定义拦截模式-骚扰电话常量 */
	public static final String CONFIG_FIREWALL_MODE_DISTURB_CALL= "FirewallModeDisturbCall";

	/**
	 * 获取智能拦截是否开启
	 */
	public static boolean getFirewallState() {
		return MainApp.getPreference().getBoolean(CONFIG_IS_FIREWALL_OPEN, false);
	}

	/**
	 * 设置智能拦截是否开启
	 * 
	 * @param isFirewallOpen
	 */
	public static void setFirewallState(boolean isFirewallOpen) {
		MainApp.getPreference().edit().putBoolean(CONFIG_IS_FIREWALL_OPEN, isFirewallOpen).commit();
	}

	/**
	 * 获取拦截模式值
	 */
	public static int getFirewallMode() {
		return MainApp.getPreference().getInt(CONFIG_FIREWALL_MODE, 0);
	}

	/**
	 * 设置拦截模式值
	 * 
	 * @param mode
	 */
	public static void setFirewallMode(int mode) {
		MainApp.getPreference().edit().putInt(CONFIG_FIREWALL_MODE, mode).commit();
	}

	/**
	 * 获取拦截提示音值
	 */
	public static int getFirewallTone() {
		return MainApp.getPreference().getInt(CONFIG_FIREWALL_TONE, 0);
	}

	/**
	 * 设置拦截提示音值
	 * 
	 * @param tone
	 */
	public static void setFirewallTone(int tone) {
		MainApp.getPreference().edit().putInt(CONFIG_FIREWALL_TONE, tone).commit();
	}

	/**
	 * 获取指定的自定义拦截模式
	 */
	public static boolean getFirewallModeState(String key) {
		return MainApp.getPreference().getBoolean(key, false);
	}

	/**
	 * 获取指定的自定义拦截模式
	 */
	public static boolean getFirewallModeState(String key, boolean defaultState) {
		defaultState = MainApp.getPreference().getBoolean(key, defaultState);
		setFirewallModeState(key, defaultState);
		return defaultState;
	}

	/**
	 * 设置指定的自定义拦截模式状态
	 * 
	 * @param state
	 */
	public static void setFirewallModeState(String key, boolean state) {
		MainApp.getPreference().edit().putBoolean(key, state).commit();
	}
}
